/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tk.eigh.ksvg.component.shape;

import tk.eigh.ksvg.component.painting._FillProperties;
import ksvg.core.SVGShape;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
import tk.eigh.ksvg.types.SVGCoordinate;
import tk.eigh.ksvg.types.SVGLength;

/**
 *
 * @author nt
 */
@JSFComponent(name = "svg:Circle",
type = "tk.eigh.svg.Circle",
family = "shape.Circle",
clazz = "ksvg.shape.Circle",
tagClass = "ksvg.tags.Circle",
defaultRendererType = "SVGCircleRenderer",
desc = "The ‘circle’ element defines a circle based on a center point and a radius.")
public abstract class AbstractCircle extends SVGShape implements _FillProperties {

    /**
     * cx = "&lt;coordinate&gt;"
     *<br/>
     * The x-axis coordinate of the center of the circle. If
     * the attribute is not specified, the effect is as if a value of "0" were
     * specified.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty(required = true)
    public abstract SVGCoordinate getCx();

    /**
     * cy = "&lt;coordinate&gt;"
     *<br/>
     * The y-axis coordinate of the center of the circle. If
     * the attribute is not specified, the effect is as if a value of "0" were
     * specified.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty(required = true)
    public abstract SVGCoordinate getCy();

    /**
     * r = "&lt;length&gt;" 
     *<br/>
     * The radius of the circle. A negative value is an error
     * (see Error processing). A value of zero disables rendering of the
     * element.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty(required = true)
    public abstract SVGLength getRadius();
}
